# bash completion for (Debian) reportbug                   -*- shell-script -*-

_reportbug()
{
    local cur prev words cword split
    _init_completion -s || return

    case $prev in
        --class | --header | --pseudo-header | --mirror | --list-cc | \
            --subject | --http_proxy | --proxy | --email | --realname | \
            --smtpuser | --smtppasswd | --replyto | --reply-to | \
            --justification | --package-version | --body | --body-file | \
            --timeout | --max-attachment-size | --envelope-from | \
            -!(-*)[CHPsjV])
            return
            ;;
        --filename | --include | --mta | --output | --attach | -[fioA])
            _filedir
            return
            ;;
        --keyid | -!(-*)K)
            COMPREPLY=($(compgen -W '$(IFS=: ; \
                gpg --list-keys --with-colons 2>/dev/null \
                | while read -ra row ; do
                    [[ "${row[0]}" == [ps]ub && ${row[11]} == *s* ]] && \
                        printf "%s\n" "${row[4]}"
                done)' -- "$cur"))
            return
            ;;
        --bts | -!(-*)B)
            COMPREPLY=($(compgen -W "debian guug kde mandrake help" -- \
                "$cur"))
            return
            ;;
        --editor | --mua | --mbox-reader-cmd | -!(-*)e)
            compopt -o filenames
            COMPREPLY=($(compgen -c -- "$cur"))
            return
            ;;
        --mode)
            COMPREPLY=($(compgen -W "novice standard expert" -- "$cur"))
            return
            ;;
        --severity | -!(-*)S)
            COMPREPLY=($(compgen -W "grave serious important normal minor
                wishlist" -- "$cur"))
            return
            ;;
        --ui | --interface | -!(-*)u)
            COMPREPLY=($(compgen -W "newt text gnome" -- "$cur"))
            return
            ;;
        --type | -!(-*)t)
            COMPREPLY=($(compgen -W "gnats debbugs" -- "$cur"))
            return
            ;;
        --tag | -!(-*)T)
            COMPREPLY=($(compgen -W "none woody potato sarge sarge-ignore
                etch etch-ignore lenny lenny-ignore sid experimental confirmed
                d-i fixed fixed-in-experimental fixed-upstream help l10n
                moreinfo patch pending security unreproducible upstream wontfix
                ipv6 lfs" -- "$cur"))
            return
            ;;
        --from-buildd)
            COMPREPLY=($(compgen -S "_" -W '$(apt-cache dumpavail | \
                command grep "^Source: $cur" | sort -u | cut -f2 -d" ")'))
            return
            ;;
        --smtphost)
            _known_hosts_real -- "$cur"
            return
            ;;
        --draftpath)
            _filedir -d
            return
            ;;
    esac

    $split && return

    if [[ $cur == -* ]]; then
        COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
        [[ ${COMPREPLY-} == -*= ]] && compopt -o nospace
        return
    fi

    COMPREPLY=($(compgen -W 'wnpp boot-floppies kernel bugs.debian.org
        cdimage.debian.org general installation-reports listarchives
        lists.debian.org mirrors nm.debian.org press project qa.debian.org
        release-notes security.debian.org tech-ctte upgrade-reports
        www.debian.org $(_xfunc apt-cache _apt_cache_packages)' -- "$cur"))
    _filedir
} &&
    complete -F _reportbug reportbug

# ex: filetype=sh
